/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.common;

import java.time.LocalDateTime;

/**
 * 存放一些公共全局的属性
 *
 * @author 挺好的 2023年05月30日 8:00
 */
public final class CommonAttributes {

    private CommonAttributes () {
    }

    /**
     * 默认的时间，用于填充数据库不能为空的时间
     */
    public static final LocalDateTime DEFAULT_DATE = LocalDateTime.of(1999, 1, 1, 0, 0, 0);

    /**
     * 分隔符
     */
    public static final String SEPARATOR = ",";

    /**
     * 路径分隔符
     */
    public static final String PATH_SEPARATOR = "/";


    /**
     * 唯一索引标记值
     */
    public static class UniqueKeySetting {

        private UniqueKeySetting () {
        }

        /**
         * 默认的唯一索引标记值
         */
        public static final Long DEFAULT_UNIQUE_TIMESTAMP = 0L;
    }

    /**
     * 角色配置
     */
    public static class RoleSetting {

        private RoleSetting () {
        }

        /**
         * 角色前缀
         */
        public static final String ROLE_PREFIX = "ROLE_";

        /**
         * 保留角色关键字
         */
        public static final String[] KEEP_KEYWORDS = new String[] {"ROLE_LOGIN"};
    }

    /**
     * 日期格式
     */
    public static class DatePattern {

        private DatePattern () {
        }

        /**
         * 年。 yyyy
         */
        public static final String YEAR = "yyyy";

        /**
         * 年月。yyyy-MM
         */
        public static final String YEAR_MONTH_1 = "yyyy-MM";

        /**
         * 年月。yyyyMM
         */
        public static final String YEAR_MONTH_2 = "yyyyMM";

        /**
         * 年月。yyyy/MM
         */
        public static final String YEAR_MONTH_3 = "yyyy/MM";

        /**
         * 年月。yyyy年MM月
         */
        public static final String YEAR_MONTH_4 = "yyyy年MM月";

        /**
         * 日期。yyyy-MM-dd
         */
        public static final String DATE_1 = "yyyy-MM-dd";

        /**
         * 日期。yyyyMMdd
         */
        public static final String DATE_2 = "yyyyMMdd";

        /**
         * 日期。yyyy/MM/dd
         */
        public static final String DATE_3 = "yyyy/MM/dd";

        /**
         * 日期。yyyy年MM月dd日
         */
        public static final String DATE_4 = "yyyy年MM月dd日";

        /**
         * 日期。MM月dd日
         */
        public static final String DATE_5 = "MM月dd日";


        /**
         * 时间。yyyy-MM-dd HH:mm:ss
         */
        public static final String DATE_TIME_1 = "yyyy-MM-dd HH:mm:ss";

        /**
         * 日期。yyyyMMddHHmmss
         */
        public static final String DATE_TIME_2 = "yyyyMMddHHmmss";

        /**
         * 日期。yyyy/MM/dd HH:mm:ss
         */
        public static final String DATE_TIME_3 = "yyyy/MM/dd HH:mm:ss";

        /**
         * 日期。yyyy年MM月dd日 HH:mm:ss
         */
        public static final String DATE_TIME_4 = "yyyy年MM月dd日 HH:mm:ss";

        /**
         * 日期。 MM月dd日 HH:mm
         */
        public static final String DATE_TIME_5 = "MM月dd日 HH:mm";

        /**
         * 时间。 HH:mm:ss
         */
        public static final String TIME = "HH:mm:ss";

        /**
         * 时间。 HH:mm
         */
        public static final String TIME_2 = "HH:mm";

        /**
         * 时间、日期格式
         */
        public static final String[] PATTERNS = new String[] {DATE_TIME_1, DATE_TIME_2, DATE_TIME_3, DATE_TIME_4,

                DATE_1, DATE_2, DATE_3, DATE_4,

                YEAR_MONTH_1, YEAR_MONTH_2, YEAR_MONTH_3, YEAR_MONTH_4,

                YEAR,

                TIME,

                TIME_2,

        };

    }


}
